/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presentation;

import entity.xml.EMessaggio;
import foundation.FUtility;
import java.awt.FlowLayout;
import java.awt.event.MouseListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import org.jdesktop.swingx.StackLayout;

/**
 *
 * @author Ennio
 */
public class messaggioPanel extends JPanel{
    
    private ArrayList<EMessaggio> conversazione;
    private boolean letto= false;
    
    public messaggioPanel(ArrayList<EMessaggio> conv, MouseListener mListener){
        Border paddingBorder= null;
        
        String labelConv="<html>";
        this.conversazione=conv;
        ImageIcon icon=null;
        if(conversazione.size()>1){
            boolean tempFlag= false;
            paddingBorder = BorderFactory.createEmptyBorder(20,10,10,10);
            String pathIcon= "src/images/conversazione.png";
            for(int j=0; j<conversazione.size(); j++ ){
                if(conversazione.get(j).getStato()==0){ 
                    paddingBorder = BorderFactory.createEmptyBorder(50,10,10,10);
                    pathIcon= "src/images/conversazione_non_letta.png";
                    tempFlag= true;
                }
            }
            if(tempFlag) this.letto= false;
            else this.letto= true;
            icon=new ImageIcon(pathIcon);
            labelConv+="<b><u>Conversazione da: </u></b><br> " ;
            labelConv+= conversazione.get(0).getMittente().getNickname() + "<br>";
            labelConv+="<b><u>Conversazione con: </u></b><br> " ;
            for(int k=0; k<conversazione.get(0).getDestinatario().size(); k++){
                labelConv+= conversazione.get(0).getDestinatario().get(k).getNickname();
                if(k<conversazione.get(0).getDestinatario().size()-1) labelConv+= ",  ";
                if(k%2==0 && k!=0) labelConv += "<br>" ;
            }
        }
        else{
            boolean tempFlag= false;
            String pathIcon="";    
            paddingBorder = BorderFactory.createEmptyBorder(20,10,10,10);
            if(conversazione.get(0).getStato()==0) {
                paddingBorder = BorderFactory.createEmptyBorder(50,10,10,10);
                pathIcon= "src/images/messaggio_singolo_non_letto.png";
                tempFlag= true;
            }
            else pathIcon="src/images/messaggio_singolo.png";
            if(tempFlag) this.letto= false;
            else this.letto= true;
            icon=new ImageIcon(pathIcon);
            labelConv+="<b><u>Messaggio da: </u></b><br>" +conversazione.get(0).getMittente().getNickname() + "<br>";
            labelConv+="<b><u>Messaggio a: </u></b> <br>";
            for(int k=0; k<conversazione.get(0).getDestinatario().size(); k++){
                labelConv+= conversazione.get(0).getDestinatario().get(k).getNickname();
                if(k<conversazione.get(0).getDestinatario().size()-1) labelConv+= ",  ";
                if(k%2==0 && k!=0 && k!=conversazione.get(0).getDestinatario().size()-1) labelConv+="<br>" ;
            }
        }
        this.setLayout(new StackLayout());
        this.add(new JLabel(icon));
        
        SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
        String dateFormatted = formatDate.format(conversazione.get(0).getData().getTime());
        labelConv+="<br><b><u>Data: </u></b><br>" + dateFormatted;
        labelConv+="</html>";
        //labelConv="<html><b><u>T</u>wo</b><br>lines</html>";
        
        JPanel messLabels=new JPanel(new FlowLayout());
        messLabels.setBounds(10, 10, 180, 180);
        JLabel titolo=new JLabel(labelConv);
        titolo.setHorizontalAlignment(JLabel.CENTER);
        titolo.setVerticalAlignment(JLabel.BOTTOM);
        titolo.setBorder(paddingBorder);
        messLabels.add(titolo);
        messLabels.setOpaque(false);
        this.add(messLabels, StackLayout.TOP);
        this.setBounds(0, 0, 200, 200);
        
       
        this.addMouseListener(mListener);
        this.setOpaque(false);
        this.setBorder(null);
        
    }
    
    public ArrayList<EMessaggio> getConversazione(){
        return this.conversazione;
    }
    
}
